package com.blog.common.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.blog.common.domain.annotation.Convert;
import com.blog.common.domain.typeHandler.BottomLabelHandler;
import com.blog.common.domain.typeHandler.PageCoverHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;


/**
 * <p>
 * 网站配置
 * </p>
 *
 * @author Valerie
 * @since 2023-03-11
 */
@Data
@EqualsAndHashCode
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "tb_site_config", autoResultMap = true)
@ApiModel(value = "网站配置", description = "网站配置")
public class SiteConfig implements Serializable {

    /**
    * 主键
    */
    @ApiModelProperty("主键")
    @TableId(type = IdType.ASSIGN_ID)
    private Integer id;
    /**
    * 用户头像
    */
    @ApiModelProperty("用户头像")
    private String userAvatar;
    /**
    * 游客头像
    */
    @ApiModelProperty("游客头像")
    private String touristAvatar;

    /**
     * 主页图片
     */
    @ApiModelProperty("主页图片")
    @TableField(value = "page_cover", typeHandler = PageCoverHandler.class)
    @Convert
    private List<String> pageCover;
    /**
    * 网站名称
    */
    @ApiModelProperty("网站名称")
    private String siteName;
    /**
    * 网站地址
    */
    @ApiModelProperty("网站地址")
    private String siteAddress;
    /**
    * 网站简介
    */
    @ApiModelProperty("网站简介")
    private String siteIntro;
    /**
    * 网站公告
    */
    @ApiModelProperty("网站公告")
    private String siteNotice;
    /**
    * 建站日期
    */
    @ApiModelProperty("建站日期")
    private String createSiteTime;
    /**
    * 备案号
    */
    @ApiModelProperty("备案号")
    private String recordNumber;
    /**
    * 作者头像
    */
    @ApiModelProperty("作者头像")
    private String authorAvatar;
    /**
    * 网站作者
    */
    @ApiModelProperty("网站作者")
    private String siteAuthor;
    /**
    * 文章默认封面
    */
    @ApiModelProperty("文章默认封面")
    private String articleCover;
    /**
    * 关于我
    */
    @ApiModelProperty("关于我")
    private String aboutMe;
    /**
    * Github
    */
    @ApiModelProperty("Github")
    private String github;
    /**
    * Gitee
    */
    @ApiModelProperty("Gitee")
    private String gitee;
    /**
    * 哔哩哔哩
    */
    @ApiModelProperty("哔哩哔哩")
    private String bilibili;
    /**
    * QQ
    */
    @ApiModelProperty("QQ")
    private String qq;
    /**
    * 是否评论审核 (0否 1是)
    */
    @ApiModelProperty("是否评论审核 (0否 1是)")
    private Integer commentCheck;
    /**
    * 是否留言审核 (0否 1是)
    */
    @ApiModelProperty("是否留言审核 (0否 1是)")
    private Integer messageCheck;
    /**
    * 是否开启打赏 (0否 1是)
    */
    @ApiModelProperty("是否开启打赏 (0否 1是)")
    private Integer isReward;
    /**
    * 微信二维码
    */
    @ApiModelProperty("微信二维码")
    private String weiXinCode;
    /**
    * 支付宝二维码
    */
    @ApiModelProperty("支付宝二维码")
    private String aliCode;
    /**
    * 是否邮箱通知 (0否 1是)
    */
    @ApiModelProperty("是否邮箱通知 (0否 1是)")
    private Integer emailNotice;
    /**
    * 社交列表
    */
    @ApiModelProperty("社交列表")
    private String socialList;

    /**
    * 登录方式
    */
    @ApiModelProperty("登录方式")
    private String loginList;
    /**
    * 是否开启音乐播放器 (0否 1是)
    */
    @ApiModelProperty("是否开启音乐播放器 (0否 1是)")
    private Integer isMusic;
    /**
    * 网易云歌单id
    */
    @ApiModelProperty("网易云歌单id")
    private String musicId;

    /**
     * 页脚标签
     */
    @ApiModelProperty("页脚标签")
    @TableField(value = "bottom_label", typeHandler = BottomLabelHandler.class)
    private List<BottomLabel> bottomLabel;

    /**
    * 创建时间
    */
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
    * 更新时间
    */
    @ApiModelProperty("更新时间")
    private Date updateTime;
}
